from flask import Flask, jsonify
from flask_cors import CORS
from .funs import get_time, get_date


def create_app():
    app = Flask(__name__)
    CORS(app)

    @app.route('/')
    def index():
        return jsonify({
            'code': 0,
            'msg': 'success',
            'data': {
                'a': 1,
                'b': '2',
                'c': [3, '4', 5],
            }
        })

    @app.route('/now')
    def get_now():
        return jsonify({
            'code': 0,
            'msg': 'success',
            'data': {
                'time': get_time(),
                'date': get_date(),
            }
        })

    @app.route('/hello')
    def get_hello():
        return jsonify({
            'code': 0,
            'msg': 'success',
            'data': {
                'tip': 'Hello, World',
            },
        })

    @app.route('/user/<user_name>')
    def get_user(user_name):
        return jsonify({
            'code': 0,
            'msg': 'success',
            'data': {
                'user': {
                    'name': user_name,
                },
            }
        })

    @app.route('/post/<int:post_id>')
    def get_post(post_id):
        return jsonify({
            'code': 0,
            'msg': 'success',
            'data': {
                'post': {
                    'id': post_id,
                },
            }
        })

    @app.route('/path/<path:subpath>')
    def get_subpath(subpath):
        return jsonify({
            'code': 0,
            'msg': 'success',
            'data': {
                'subpath': subpath,
            }
        })

    return app
